package com.eascs.tdriskcloud.service;

import java.util.List;

import com.eascs.tdriskcloud.entity.TdHitsInformation;
import com.eascs.tdriskcloud.form.conditions.ConActiveDaysOne;
import com.eascs.tdriskcloud.form.conditions.ConActiveDaysTwo;
import com.eascs.tdriskcloud.form.conditions.ConAndroidCheatApp;
import com.eascs.tdriskcloud.form.conditions.ConAndroidEmulator;
import com.eascs.tdriskcloud.form.conditions.ConAssociationIndustry;
import com.eascs.tdriskcloud.form.conditions.ConAssociationPartner;
import com.eascs.tdriskcloud.form.conditions.ConBlanckList;
import com.eascs.tdriskcloud.form.conditions.ConCalculate;
import com.eascs.tdriskcloud.form.conditions.ConCount;
import com.eascs.tdriskcloud.form.conditions.ConCrossEvent;
import com.eascs.tdriskcloud.form.conditions.ConCrossPartner;
import com.eascs.tdriskcloud.form.conditions.ConCrossVelocityDistinct;
import com.eascs.tdriskcloud.form.conditions.ConCrossVelocityOneDim;
import com.eascs.tdriskcloud.form.conditions.ConCustomList;
import com.eascs.tdriskcloud.form.conditions.ConDeviceStatusAbnormal;
import com.eascs.tdriskcloud.form.conditions.ConDiscreditCount;
import com.eascs.tdriskcloud.form.conditions.ConEventTimeDiff;
import com.eascs.tdriskcloud.form.conditions.ConFourCalculation;
import com.eascs.tdriskcloud.form.conditions.ConFpException;
import com.eascs.tdriskcloud.form.conditions.ConFrequencyCount;
import com.eascs.tdriskcloud.form.conditions.ConFrequencyDistinct;
import com.eascs.tdriskcloud.form.conditions.ConFrequencyOneDim;
import com.eascs.tdriskcloud.form.conditions.ConFuzzyBlackList;
import com.eascs.tdriskcloud.form.conditions.ConGeoIpDistance;
import com.eascs.tdriskcloud.form.conditions.ConGpsDistance;
import com.eascs.tdriskcloud.form.conditions.ConGreyList;
import com.eascs.tdriskcloud.form.conditions.ConIosCheatApp;
import com.eascs.tdriskcloud.form.conditions.ConKeyword;
import com.eascs.tdriskcloud.form.conditions.ConLastMatch;
import com.eascs.tdriskcloud.form.conditions.ConMatchAddress;
import com.eascs.tdriskcloud.form.conditions.ConProxyIp;
import com.eascs.tdriskcloud.form.conditions.ConRegex;
import com.eascs.tdriskcloud.form.conditions.ConSuspectedTeam;
import com.eascs.tdriskcloud.form.conditions.ConTimeDiff;
import com.eascs.tdriskcloud.form.conditions.ConUsualBrowser;

public interface HitInfoParsService {

	public TdHitsInformation queryHitsInfoEntity(String id);

	// 根据关联id查询命中信息
	public List<TdHitsInformation> queryHitsInfoByTdId(String tdId);

	// 当type为black_list时
	public List<ConBlanckList> parsHitsBlackList(TdHitsInformation entity);

	// 当type为custom_list时
	public List<ConCustomList> parsHitsCustomList(TdHitsInformation entity);

	// 当type为discredit_count时
	public List<ConDiscreditCount> parsHitsDiscreditCount(TdHitsInformation entity);

	// 当type为grey_list时
	public List<ConGreyList> parsHitsGreyList(TdHitsInformation entity);

	// 当type为fuzzy_black_list时
	public List<ConFuzzyBlackList> parsFuzzyBlackList(TdHitsInformation entity);

	// 当type为frequency_distinct时
	public List<ConFrequencyDistinct> parsFrequencyDistinct(TdHitsInformation entity);

	// 当type为cross_velocity_one_dim时
	public List<ConCrossVelocityOneDim> parsCrossVelocityOneDim(TdHitsInformation entity);

	// 当type为association_partner时
	public List<ConAssociationPartner> parsAssociationPartner(TdHitsInformation entity);

	// 当type为frequency_one_dim时
	public List<ConFrequencyOneDim> parsFrequencyOneDim(TdHitsInformation entity);

	// 当type为frequency_count时
	public List<ConFrequencyCount> parsFrequencyCount(TdHitsInformation entity);

	// 当type为fp_exception时
	public List<ConFpException> parsFpException(TdHitsInformation entity);

	// 当type为geo_ip_distance时
	public List<ConGeoIpDistance> parsGeoIpDistance(TdHitsInformation entity);

	// 当type为proxy_ip时
	public List<ConProxyIp> parsProxyIp(TdHitsInformation entity);

	// 当type为match_address时
	public List<ConMatchAddress> parsMatchAddress(TdHitsInformation entity);

	// 当type为gps_distance时
	public List<ConGpsDistance> parsGpsDistance(TdHitsInformation entity);

	// 当type为regex时
	public List<ConRegex> parsRegex(TdHitsInformation entity);

	// 当type为event_time_diff时
	public List<ConEventTimeDiff> parsEventTimeDiff(TdHitsInformation entity);

	// 当type为time_diff时
	public List<ConTimeDiff> parsTimeDiff(TdHitsInformation entity);

	// 当type为active_days_one时
	public List<ConActiveDaysOne> parsActiveDaysOne(TdHitsInformation entity);

	// 当type为active_days_two时
	public List<ConActiveDaysTwo> parsActiveDaysTwo(TdHitsInformation entity);

	// 当type为cross_event和cross_velocity_count时
	public List<ConCrossEvent> parsCrossEvent(TdHitsInformation entity);

	// 当type为cross_velocity_distinct时
	public List<ConCrossVelocityDistinct> parsCrossVelocityDistinct(TdHitsInformation entity);

	// 当type为calculate和min_max时
	public List<ConCalculate> parsCalculate(TdHitsInformation entity);

	// 当type为last_match时
	public List<ConLastMatch> parsLastMatch(TdHitsInformation entity);

	// 当type为count时
	public List<ConCount> parsCount(TdHitsInformation entity);

	// 当type为association_industry时
	public List<ConAssociationIndustry> parsAssociationIndustry(TdHitsInformation entity);

	// 当type为cross_partner时
	public List<ConCrossPartner> parsCrossPartner(TdHitsInformation entity);

	// 当type为four_calculation和function_kit时
	public List<ConFourCalculation> parsFourCalculation(TdHitsInformation entity);

	// 当type为usual_browser和usual_device和usual_location时
	public List<ConUsualBrowser> parsUsualBrowser(TdHitsInformation entity);
	
	// 当type为keyword时
	public List<ConKeyword> parsKeyword(TdHitsInformation entity);
	
	// 当type为android_cheat_app时
	public List<ConAndroidCheatApp> parsAndroidCheatApp(TdHitsInformation entity);
	
	// 当type为ios_cheat_app时
	public List<ConIosCheatApp> parsIosCheatApp(TdHitsInformation entity);
	
	// 当type为android_emulator时
	public List<ConAndroidEmulator> parsAndroidEmulator(TdHitsInformation entity);
	
	// 当type为device_status_abnormal时
	public List<ConDeviceStatusAbnormal> parsDeviceStatusAbnormal(TdHitsInformation entity);
	
	// 当type为suspected_team时
	public List<ConSuspectedTeam> parsSuspectedTeam(TdHitsInformation entity);
}
